Web API এবং RESTful Services হলো ওয়েব সার্ভিস ডেভেলপমেন্টের দুটি গুরুত্বপূর্ণ ধারণা। আজকাল ওয়েব অ্যাপ্লিকেশন, মোবাইল অ্যাপ্লিকেশন এবং অন্যান্য প্ল্যাটফর্মের মধ্যে ডাটা আদান-প্রদান করার জন্য API (Application Programming Interface) ব্যবহার করা হয়, এবং RESTful Services একটি স্ট্যান্ডার্ড ওয়েব সার্ভিস আর্কিটেকচার হিসেবে অত্যন্ত জনপ্রিয়।
Web API হল একটি সফটওয়্যার অ্যাপ্লিকেশন ইন্টারফেস (API) যা HTTP প্রোটোকল ব্যবহার করে ইন্টারনেট বা লোকাল নেটওয়ার্কের মধ্যে ডাটা আদান-প্রদান করতে সক্ষম। এটি ক্লায়েন্ট (যেমন ওয়েব ব্রাউজার, মোবাইল অ্যাপ্লিকেশন বা ডেস্কটপ অ্যাপ্লিকেশন) এবং সার্ভার বা ডেটাবেসের মধ্যে ডাটা এক্সচেঞ্জ করতে ব্যবহৃত হয়। Web API সাধারণত JSON বা XML ফরম্যাটে ডাটা রিটার্ন করে।
ASP.Net Core-এ Web API তৈরি করতে ControllerBase
ক্লাস ব্যবহার করা হয়। এই কন্ট্রোলার HTTP রিকোয়েস্টগুলো গ্রহণ করে এবং সেই অনুযায়ী রেসপন্স প্রদান করে।
Web API তে সাধারণত HTTP মেথডের মাধ্যমে বিভিন্ন অ্যাকশন সম্পন্ন করা হয়:
এগুলোর মাধ্যমে ক্লায়েন্ট সার্ভারের সাথে যোগাযোগ করে এবং প্রয়োজনীয় ডাটা আদান-প্রদান হয়।
REST (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল যা ওয়েব সার্ভিস ডেভেলপমেন্টের জন্য তৈরি করা হয়েছে। RESTful Services হলো এমন Web API যা REST আর্কিটেকচার অনুসরণ করে ডেভেলপ করা হয়। RESTful Services HTTP প্রোটোকল ব্যবহার করে ডাটা পরিচালনা করে এবং ক্লায়েন্ট-সার্ভার কমিউনিকেশন সহজ ও স্কেলেবল করে।
RESTful API তৈরি করার জন্য কিছু মৌলিক নীতি অনুসরণ করা হয়:
RESTful API ডিজাইন করার সময়, সাধারণত কিছু গুরুত্বপূর্ণ নীতি অনুসরণ করা হয়:
GET /api/products
: সকল পণ্য প্রদর্শন করবে।GET /api/products/{id}
: নির্দিষ্ট পণ্য প্রদর্শন করবে।POST /api/products
: নতুন পণ্য তৈরি করবে।PUT /api/products/{id}
: পণ্য আপডেট করবে।DELETE /api/products/{id}
: পণ্য মুছবে।ASP.Net Core তে RESTful Web API তৈরি করতে বেশ কিছু সহজ ধাপ অনুসরণ করতে হয়:
API কন্ট্রোলার তৈরি করা
API কন্ট্রোলার ক্লাসটি ControllerBase
ক্লাস থেকে ইনহেরিট করা হয় এবং [ApiController]
অ্যাট্রিবিউট ব্যবহার করা হয়।
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
private readonly ApplicationDbContext _context;
public ProductsController(ApplicationDbContext context)
{
_context = context;
}
[HttpGet]
public ActionResult<IEnumerable<Product>> GetProducts()
{
return _context.Products.ToList();
}
[HttpPost]
public ActionResult<Product> CreateProduct(Product product)
{
_context.Products.Add(product);
_context.SaveChanges();
return CreatedAtAction(nameof(GetProductById), new { id = product.Id }, product);
}
}
প্রতিটি Web API রিকোয়েস্টের জন্য JSON রেসপন্স প্রদান করা হয়, যা সাধারণত Ok()
বা Created()
মেথডের মাধ্যমে প্রেরিত হয়। JSON ডাটা হল একটি জনপ্রিয় ফরম্যাট যা অ্যাপ্লিকেশনগুলো সহজে প্রক্রিয়া করতে পারে।
JSON রেসপন্সের উদাহরণ:
{
"Id": 1,
"Name": "Product1",
"Price": 100
}
Web API এবং RESTful Services ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ প্রযুক্তি। ASP.Net Core এ RESTful API তৈরি করতে ControllerBase
ক্লাস এবং HTTP মেথডের সাহায্যে ডাটা আদান-প্রদান করা হয়। JSON রেসপন্স প্রদান করা হয় যেটি সহজে পাঠযোগ্য এবং বিভিন্ন ক্লায়েন্ট সাইড অ্যাপ্লিকেশন দ্বারা ব্যবহারযোগ্য। RESTful API ডিজাইন করায় ডাটা ব্যবস্থাপনা আরও সহজ, স্কেলেবল, এবং সুরক্ষিত হয়।
Web API (Application Programming Interface) এমন একটি ইন্টারফেস যা বিভিন্ন সফটওয়্যার অ্যাপ্লিকেশন বা সিস্টেমের মধ্যে যোগাযোগ প্রতিষ্ঠা করতে ব্যবহৃত হয়। এটি একটি সার্ভিস হিসেবে কাজ করে, যেখানে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা বিনিময়ের জন্য HTTP প্রোটোকল ব্যবহার করা হয়। Web API সাধারণত JSON বা XML ফরম্যাটে ডেটা রিটার্ন করে।
API মূলত দুইটি কাজ করে:
Web API ব্যবহারের পেছনে বেশ কিছু গুরুত্বপূর্ণ কারণ রয়েছে। এদের মধ্যে কয়েকটি হল:
Web API প্ল্যাটফর্ম-নিরপেক্ষ। অর্থাৎ, এটি ওয়েব, মোবাইল অ্যাপ্লিকেশন, ডেস্কটপ অ্যাপ্লিকেশন, এবং অন্যান্য সিস্টেমের মধ্যে ডেটা বা ফাংশনালিটি শেয়ার করতে সক্ষম। উদাহরণস্বরূপ, একটি মোবাইল অ্যাপ্লিকেশন এবং একটি ওয়েব অ্যাপ্লিকেশন একই Web API ব্যবহার করতে পারে, যা তাদের মধ্যে ডেটা বা ফাংশন শেয়ার করতে সাহায্য করে।
একবার Web API তৈরি হলে সেটি অনেক জায়গায় ব্যবহার করা যেতে পারে। একটি Web API তৈরি করে একাধিক ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সেটি ব্যবহার করা সম্ভব, যার ফলে কোড রিয়ুज़ করা যায় এবং ডেভেলপমেন্টের সময় বাঁচে।
Web API ব্যবহার করলে আপনার অ্যাপ্লিকেশন সহজেই স্কেল করা যায়। কারণ Web API কেবল সার্ভারের সাথে ক্লায়েন্টের যোগাযোগের একটি মাধ্যম, এর মাধ্যমে অতিরিক্ত সার্ভিস বা ডেটা সহজেই ইনটিগ্রেট করা যায়।
Web API বিভিন্ন অ্যাপ্লিকেশন ও সিস্টেমের মধ্যে ডেটা শেয়ার করার একটি সহজ উপায়। উদাহরণস্বরূপ, একটি Web API ব্যবহার করে একটি মোবাইল অ্যাপ্লিকেশন ব্যবহারকারী ডেটা শেয়ার করতে পারে, এবং সেই ডেটা ওয়েব অ্যাপ্লিকেশনেও দেখতে পাওয়া যাবে।
মাইক্রোসার্ভিসেস আর্কিটেকচারের মাধ্যমে বিভিন্ন অ্যাপ্লিকেশন কম্পোনেন্ট একে অপরের সাথে যোগাযোগ করতে API ব্যবহার করে। এটি অ্যাপ্লিকেশনের বিভিন্ন অংশকে স্বাধীনভাবে ডেভেলপ, ডিপ্লয়, এবং স্কেল করতে সাহায্য করে।
Web API তৃতীয় পক্ষের সেবার সঙ্গে ইন্টিগ্রেট করার জন্য ব্যবহৃত হয়। যেমন, পেমেন্ট গেটওয়ে, সামাজিক মিডিয়া প্ল্যাটফর্ম, মেঘ সেবা (cloud services), এবং অন্যান্য তৃতীয় পক্ষের অ্যাপ্লিকেশন থেকে ডেটা বা কার্যক্রম গ্রহণ করার জন্য API ব্যবহার করা হয়।
Web API ক্লায়েন্ট এবং সার্ভারের মধ্যে তথ্য আদান-প্রদান করার প্রক্রিয়াটি দ্রুত এবং কার্যকরী করে। এটি অ্যাপ্লিকেশনগুলিকে সহজে এবং দ্রুত তথ্য সংগ্রহ এবং প্রক্রিয়া করতে সাহায্য করে।
ধরা যাক, আপনার একটি ওয়েব অ্যাপ্লিকেশন রয়েছে যেটি ব্যবহারকারীদের পণ্য বিক্রি করে। আপনি যদি Web API তৈরি করেন, তবে মোবাইল অ্যাপ্লিকেশন থেকে সেই API কল করে পণ্য তালিকা, মূল্য, এবং অর্ডার ডেটা পেতে পারবে। একইভাবে, তৃতীয় পক্ষের অ্যাপ্লিকেশনও সেই API ব্যবহার করে পণ্য বা অর্ডারের ডেটা নিয়ে যেতে পারবে।
এছাড়া, আপনি যদি একটি পেমেন্ট গেটওয়ে ইন্টিগ্রেট করতে চান, তবে পেমেন্ট সিস্টেমের API ব্যবহার করতে হবে, যা Web API রূপে ব্যবহৃত হবে।
Web API এর প্রধান দুটি প্রকারভেদ আছে:
REST (Representational State Transfer) হচ্ছে Web API তৈরির একটি স্টাইল যা HTTP প্রোটোকল ব্যবহার করে। RESTful API এর মাধ্যমে ক্লায়েন্ট HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে সার্ভার থেকে ডেটা পায়। এটি Stateless এবং Lightweight হওয়ার জন্য জনপ্রিয়।
SOAP (Simple Object Access Protocol) হলো একটি প্রোটোকল যা XML ফরম্যাটে ডেটা আদান-প্রদান করে। SOAP Web API সাধারণত আরও সিকিউর এবং স্ট্রাকচারড হয়, কিন্তু RESTful API এর তুলনায় এটি বেশি ভারী এবং জটিল।
সারাংশ
Web API একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান যা অ্যাপ্লিকেশনগুলোর মধ্যে যোগাযোগ সহজ করে এবং ডেটা শেয়ারিং ও ইন্টিগ্রেশনকে দক্ষ করে তোলে। এটি প্ল্যাটফর্ম-নিরপেক্ষ, স্কেলেবল, এবং বিভিন্ন অ্যাপ্লিকেশন বা সার্ভিসের মধ্যে ডেটা এক্সচেঞ্জ করতে সহায়তা করে। Web API ব্যবহার করে দ্রুত ডেভেলপমেন্ট, মেইনটেনেবল কোড এবং সহজ ইন্টিগ্রেশন সম্ভব হয়।
ASP.NET Core এ API Controller তৈরি করা একটি গুরুত্বপূর্ণ অংশ, কারণ এটি HTTP রিকোয়েস্ট গ্রহণ এবং প্রক্রিয়া করে, এবং সঠিক HTTP রেসপন্স প্রদান করে। API Controller সাধারণত Web API এপ্লিকেশন তৈরি করতে ব্যবহৃত হয়, যেখানে ক্লায়েন্ট সাইডে JSON বা XML ফরম্যাটে ডাটা পাঠানো হয়।
ASP.NET Core-এ API Controller তৈরি করতে, সাধারণত ControllerBase
ক্লাস ইনহেরিট করা হয়, যা API Controller এর জন্য প্রয়োজনীয় মেথড এবং প্রপার্টি সরবরাহ করে।
কন্ট্রোলার ক্লাস তৈরি
ASP.NET Core API Controller তৈরি করতে প্রথমে একটি ক্লাস তৈরি করুন যা ControllerBase
ক্লাস ইনহেরিট করবে এবং [Route]
অ্যাট্রিবিউট দিয়ে URL রাউটিং কনফিগার করুন।
উদাহরণস্বরূপ, আমরা ProductsController
নামে একটি API Controller তৈরি করতে পারি, যা api/products
রাউটের জন্য রিকোয়েস্ট গ্রহণ করবে।
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
private static List<Product> _products = new List<Product>
{
new Product { Id = 1, Name = "Product1", Price = 100 },
new Product { Id = 2, Name = "Product2", Price = 150 }
};
// GET: api/products
[HttpGet]
public IActionResult GetProducts()
{
return Ok(_products); // JSON রেসপন্স
}
// GET: api/products/1
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // 404 রেসপন্স
}
return Ok(product); // JSON রেসপন্স
}
}
Route
অ্যাট্রিবিউট ব্যবহার করে রাউটিং কনফিগার করুন। api/[controller]
সেন্টেন্সটি স্বয়ংক্রিয়ভাবে কন্ট্রোলারের নাম (ProductsController
) থেকে রাউটের নাম ডিডাক্ট করবে, অর্থাৎ, কন্ট্রোলারের নাম ProductsController
থাকলে রাউট হবে api/products
।GET
, POST
, PUT
, DELETE
। প্রত্যেকটি একশন HTTP রিকোয়েস্ট অনুযায়ী রেসপন্স প্রদান করবে।GET
মেথড ডেটা রিটার্ন করার জন্য।POST
মেথড নতুন ডেটা সেভ করার জন্য।PUT
মেথড ডেটা আপডেট করার জন্য।DELETE
মেথড ডেটা মুছে ফেলার জন্য।GET RequestGET
রিকোয়েস্টের মাধ্যমে ডেটা ফেচ করা হয়। নিচের উদাহরণে, আমরা GetProducts
এবং GetProduct
মেথড তৈরি করেছি যা বিভিন্ন প্রোডাক্টের তালিকা এবং নির্দিষ্ট একটি প্রোডাক্টের ডেটা রিটার্ন করবে।
[HttpGet]
public IActionResult GetProducts()
{
return Ok(_products); // সকল প্রোডাক্টের JSON রেসপন্স
}
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
return Ok(product); // নির্দিষ্ট প্রোডাক্টের JSON রেসপন্স
}
POST RequestPOST
রিকোয়েস্টের মাধ্যমে নতুন ডেটা তৈরি করা হয়। নিচের উদাহরণে, নতুন প্রোডাক্ট তৈরি করা হচ্ছে।
[HttpPost]
public IActionResult CreateProduct(Product product)
{
_products.Add(product); // প্রোডাক্ট লিস্টে নতুন প্রোডাক্ট যোগ করা
return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product); // 201 রেসপন্স
}
PUT RequestPUT
রিকোয়েস্টের মাধ্যমে ডেটা আপডেট করা হয়। নিচের উদাহরণে, একটি প্রোডাক্টের তথ্য আপডেট করা হচ্ছে।
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, Product product)
{
var existingProduct = _products.FirstOrDefault(p => p.Id == id);
if (existingProduct == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
existingProduct.Name = product.Name; // প্রোডাক্ট আপডেট করা
existingProduct.Price = product.Price;
return NoContent(); // 204 রেসপন্স
}
DELETE RequestDELETE
রিকোয়েস্টের মাধ্যমে ডেটা মুছে ফেলা হয়। নিচের উদাহরণে, একটি প্রোডাক্ট মুছে ফেলা হচ্ছে।
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
_products.Remove(product); // প্রোডাক্ট মুছে ফেলা
return NoContent(); // 204 রেসপন্স
}
ASP.Net Core এ বিভিন্ন ধরনের রেসপন্স প্রদান করার জন্য ActionResult
বা IActionResult
রিটার্ন টাইপ ব্যবহার করা হয়। এর মাধ্যমে বিভিন্ন HTTP স্ট্যাটাস কোড রিটার্ন করা যায়, যেমন:
এগুলি আপনাকে API কন্ট্রোলারে ক্লায়েন্টকে সঠিক HTTP স্ট্যাটাস কোড সহ রেসপন্স প্রদান করতে সহায়তা করে।
ASP.Net Core API Controller তৈরি করা অত্যন্ত সহজ। ControllerBase
ক্লাস ইনহেরিট করার মাধ্যমে API কন্ট্রোলার তৈরি করা যায় এবং HTTP রিকোয়েস্ট অনুযায়ী JSON রেসপন্স প্রদান করা যায়। ASP.Net Core API কন্ট্রোলারে GET
, POST
, PUT
, DELETE
রিকোয়েস্টের মাধ্যমে ডেটা ফেচ, সৃষ্টি, আপডেট এবং ডিলিট করা যায়। ActionResult
রিটার্ন টাইপ ব্যবহারের মাধ্যমে সঠিক HTTP স্ট্যাটাস কোড সহ রেসপন্স প্রদান করা সম্ভব।
HTTP (HyperText Transfer Protocol) হল একটি স্ট্যান্ডার্ড প্রোটোকল যা ওয়েব সার্ভার এবং ক্লায়েন্ট (ব্রাউজার বা অ্যাপ্লিকেশন) এর মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। HTTP মেথডগুলি নির্দিষ্ট কার্যক্রম সম্পাদন করার জন্য বিভিন্ন রিকোয়েস্ট টাইপ বা একশন নির্ধারণ করে। সাধারণত, চারটি গুরুত্বপূর্ণ HTTP মেথড ব্যবহৃত হয়: GET, POST, PUT, এবং DELETE। এই মেথডগুলি মূলত RESTful API ডেভেলপমেন্টে ব্যবহৃত হয়।
GET মেথড ব্যবহার করে সার্ভার থেকে ডেটা বা রিসোর্স রিট্রাইভ করা হয়। এটি মূলত রিড-অনলি অপারেশন হিসেবে কাজ করে, এবং কোনো ডেটা পরিবর্তন বা আপডেট করে না। ব্রাউজার যখন একটি URL এ রিকোয়েস্ট পাঠায়, তখন সাধারণত GET মেথড ব্যবহার করা হয়।
কীভাবে কাজ করে?
উদাহরণ:
GET /api/products
এই রিকোয়েস্টটি সার্ভার থেকে প্রোডাক্টের তালিকা রিট্রাইভ করবে।
POST মেথড ব্যবহার করে সার্ভারে ডেটা পাঠানো হয়, সাধারণত নতুন রেকর্ড তৈরি করার জন্য। POST রিকোয়েস্টের মধ্যে ডেটা পাঠানো হয় রিকোয়েস্ট বডির মাধ্যমে। এটি ডেটার পরিবর্তন এবং নতুন রিসোর্স তৈরি করার জন্য ব্যবহৃত হয়।
কীভাবে কাজ করে?
উদাহরণ:
POST /api/products
এই রিকোয়েস্টটি একটি নতুন প্রোডাক্ট তৈরি করবে সার্ভারে, যেখানে প্রোডাক্টের ডেটা রিকোয়েস্ট বডিতে থাকবে।
PUT মেথড ব্যবহার করা হয় একটি বিদ্যমান রিসোর্স সম্পূর্ণরূপে আপডেট বা প্রতিস্থাপন করার জন্য। PUT রিকোয়েস্টের মধ্যে পাঠানো ডেটা সার্ভারের বিদ্যমান রিসোর্সের সাথে প্রতিস্থাপিত হয়। এটি সাধারণত একটি সম্পূর্ণ রিসোর্স আপডেট করার জন্য ব্যবহৃত হয়, বিশেষ করে যখন ডেটার প্রায় সম্পূর্ণ পরিবর্তন করা হয়।
কীভাবে কাজ করে?
উদাহরণ:
PUT /api/products/1
এই রিকোয়েস্টটি ID 1 সহ প্রোডাক্টটি সম্পূর্ণরূপে আপডেট করবে।
DELETE মেথড ব্যবহার করে সার্ভার থেকে একটি রিসোর্স মুছে ফেলা হয়। এটি প্রধানত রিসোর্সকে ডিলিট বা সরিয়ে ফেলার জন্য ব্যবহৃত হয়। DELETE রিকোয়েস্টটি কোনও ডেটাকে সম্পূর্ণভাবে সার্ভার থেকে মুছে ফেলে।
কীভাবে কাজ করে?
উদাহরণ:
DELETE /api/products/1
এই রিকোয়েস্টটি ID 1 সহ প্রোডাক্টটিকে সার্ভার থেকে মুছে ফেলবে।
GET, POST, PUT, এবং DELETE হল HTTP প্রোটোকলের চারটি প্রধান মেথড যা ওয়েব ডেভেলপমেন্টে ডেটা রিট্রাইভ, তৈরি, আপডেট, এবং মুছে ফেলার জন্য ব্যবহৃত হয়। এগুলোর মধ্যে:
এই মেথডগুলি RESTful API ডিজাইনে গুরুত্বপূর্ণ ভূমিকা পালন করে, যা ওয়েব সার্ভিসের মধ্যে সঠিক ডেটা ম্যানিপুলেশন নিশ্চিত করে।
JSON রেসপন্স এবং API Versioning হল দুটি গুরুত্বপূর্ণ ধারণা যা আধুনিক ওয়েব অ্যাপ্লিকেশন এবং এপিআই ডেভেলপমেন্টে ব্যবহৃত হয়। এগুলো API-এর কার্যকারিতা, দক্ষতা এবং নিরাপত্তা বৃদ্ধি করতে সাহায্য করে।
JSON (JavaScript Object Notation) একটি লাইটওয়েট ডেটা ফরম্যাট যা ওয়েব সার্ভিস এবং API-এর মাধ্যমে ডেটা ট্রান্সফার করতে ব্যবহৃত হয়। JSON খুবই সহজ, পাঠযোগ্য এবং মানব-বান্ধব ফরম্যাট, যা ডেভেলপারদের জন্য API রেসপন্স ফরম্যাট হিসেবে অত্যন্ত জনপ্রিয়।
ASP.NET Core API তে JSON রেসপন্স সাধারণত JSONResult
বা OkObjectResult
এর মাধ্যমে প্রদান করা হয়। এটি HTTP রেসপন্সের বডিতে JSON ফরম্যাটে ডেটা প্রেরণ করে।
API থেকে JSON রেসপন্স পাঠানো:
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
// GET api/products
[HttpGet]
public IActionResult Get()
{
var products = new List<Product>
{
new Product { Id = 1, Name = "Product1", Price = 10.0 },
new Product { Id = 2, Name = "Product2", Price = 20.0 }
};
return Ok(products); // JSON রেসপন্স
}
}
এখানে Ok(products)
মেথডটি একটি HTTP 200 OK রেসপন্স প্রদান করে, যা JSON ফরম্যাটে পণ্যগুলোর তথ্য ফেরত দেয়।
JSON রেসপন্স উদাহরণ:
[
{
"id": 1,
"name": "Product1",
"price": 10.0
},
{
"id": 2,
"name": "Product2",
"price": 20.0
}
]
এই JSON রেসপন্সটি ক্লায়েন্ট সাইডে ডেটা ব্যবহারের জন্য প্রস্তুত থাকে এবং JavaScript বা অন্য কোনো ফ্রেমওয়ার্ক দ্বারা সহজেই পার্স করা যায়।
API Versioning হল একটি প্রক্রিয়া যার মাধ্যমে ওয়েব API-এর বিভিন্ন সংস্করণ পরিচালনা করা হয়। যখন API-র নতুন সংস্করণ তৈরি করা হয়, তখন এটি পুরোনো সংস্করণের সাথে সামঞ্জস্যপূর্ণ রাখতে API ভাঙা বা পরিবর্তন করা হয় না। এভাবে ক্লায়েন্ট অ্যাপ্লিকেশন পুরোনো API সংস্করণ ব্যবহার করলেও নতুন সংস্করণে পরিবর্তিত কোডের কারণে কোনো সমস্যা হবে না।
ASP.NET Core-এ API Versioning পরিচালনার জন্য কিছু জনপ্রিয় পদ্ধতি রয়েছে, যেমন URL প্যারামিটার, হেডার এবং রুটিং।
API Versioning কনফিগারেশন:
ASP.NET Core এ API Versioning ব্যবহার করার জন্য প্রথমে NuGet প্যাকেজ ইনস্টল করতে হয়:
dotnet add package Microsoft.AspNetCore.Mvc.Versioning
এরপর Startup.cs
ফাইলে API Versioning কনফিগার করতে হবে:
public void ConfigureServices(IServiceCollection services)
{
services.AddApiVersioning(options =>
{
options.AssumeDefaultVersionWhenUnspecified = true;
options.DefaultApiVersion = new ApiVersion(1, 0);
options.ApiVersionReader = new HeaderApiVersionReader("x-api-version");
});
services.AddControllers();
}
এখানে, AssumeDefaultVersionWhenUnspecified
অপশনটি সেট করা হয়েছে যাতে কোনো সংস্করণ না দিলে API-টি ডিফল্টভাবে সংস্করণ 1.0 ব্যবহার করবে।
API Versioning-এর জন্য কয়েকটি সাধারণ পদ্ধতি রয়েছে:
URL Path Versioning: এই পদ্ধতিতে API-র সংস্করণ URL-এর অংশ হিসেবে যুক্ত করা হয়। এটি খুবই জনপ্রিয় এবং সহজ পদ্ধতি।
GET /api/v1/products
GET /api/v2/products
Query String Versioning: API সংস্করণ একটি কুয়েরি প্যারামিটার হিসেবে পাঠানো হয়।
GET /api/products?version=1
GET /api/products?version=2
Header Versioning: API সংস্করণ HTTP হেডারে পাঠানো হয়, যা অধিক নিরাপদ এবং পরিষ্কার।
GET /api/products
Header: x-api-version: 1
Accept Header Versioning: Accept
হেডারে MIME টাইপ হিসেবে সংস্করণ নির্দিষ্ট করা হয়।
GET /api/products
Accept: application/vnd.myapi.v1+json
API Versioning এর লক্ষ্য হল পুরোনো ক্লায়েন্টদের ব্রেক না করেই নতুন বৈশিষ্ট্য বা পরিবর্তন আনা। এর জন্য গুরুত্বপূর্ণ কিছু বিষয় হলো:
সারাংশ
JSON রেসপন্স এবং API Versioning দুটি গুরুত্বপূর্ণ বিষয়। JSON রেসপন্স ডেটা ট্রান্সফার করার জন্য একটি ফরম্যাট প্রদান করে, যা সহজে বিভিন্ন ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা ব্যবহার করা যায়। অপরদিকে, API Versioning API-এর বিভিন্ন সংস্করণ পরিচালনা করার পদ্ধতি যা নতুন ফিচার যোগ করার সময় পুরোনো ক্লায়েন্টদের কার্যকারিতা ধরে রাখে এবং ব্রেক না করে নতুন সংস্করণে বৈশিষ্ট্য প্রদান করে।
common.read_more